A problem can be presented to a learner (a user of a software tool). The learner can be presented with at least one scenario that may require them to make at least one decision in order to reach a next decision point, and so on, until the learner reaches a resolution to the problem. This process can be used for many learners and/or repeated for a learner in order to teach the learner to resolve (e.g., find the best solution to) the problem.